package com.demo.cloud.server.apis;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * feign调用结构：
 * ①、feign接口端
 * ②、feign接口实现端（服务端）
 * ③、feign客户端
 *
 * feign传参总结：
 * 1.get传递普通参数，@GetMapping需要添加@RequestParam("msg")注解
 * 2.不要用get传递封装类参数，如需传递封装类参数，用postmapping
 * 3.post传递普通参数加@RequestBody或者@RequestParam都可以，但是不能什么都不加
 * 4.post传递封装类参数，feign接口需要添加@RequestBody
 * 5.post传递list参数：
 *     5.1.普通list，需要用数组接收，添加@RequestParam("lists")
 *     5.2.封装类list，需要添加@RequestBody
 *
 * 常见错误：
 * 503错误：
 * feign:
 *   circuitbreaker:
 *         enabled: true
 */
@FeignClient(name = "productServer")
public interface DemoServicesApis {
    /** 如果没加@RequestBody 则feign接口过来获取参数为空 */
    @RequestMapping(value = "/feign/get")
    public String get(@RequestParam("name") String name);
}
